<?php

/**
 * \file
 * Classe `TextBox`.
 */

/**
 * Membres de formulaires simples (textes, dates, boites de sélection, etc).
 */
namespace pilar\SimpleFormMembers /* \cond */ ; /* \endcond */
{

/**
 * Membre de texte à taille non fixe.
 *
 * \since 22/09/2008
 * \author Matthieu OVIEDO <matthieu.oviedo@gmail.com>
 */
class TextBox extends \pilar\Forms\Member {

protected function loadDefaultParams() {
 parent::loadDefaultParams();
 
 $this->params->define(array(
  'size' => 26, // Taille du champ de texte.
  'maxLength' => -1 // Nombre maximal de caractères.
 ));
}


protected function initialize() {
 parent::initialize();
 
 $this->joinField(); // Déclaration du champ principal.
}


public function guiDomNode($domDoc) {
 $domGui = $domDoc->createElement('gui');

 $domInput = $domDoc->createElement('input');
 $domInput->setAttribute('name', $this->globalId());
 $domInput->setAttribute('id', $this->globalId());
 $domInput->setAttribute('size', $this->get('size'));
 if ($this->get('maxLength') > 0) {
  $domInput->setAttribute('maxlength', $this->get('maxLength'));
 }
 $domInput->setAttribute('title', $this->get('label'));

 $domGui->appendChild($domInput);

 return $domGui;
}


protected function outputGuiController() { ?>
<?php if($this->value() != '') { ?>
$('#<?php echo $this->globalId() ?>').val('<?php echo addslashes($this->value()) ?>');
<?php } ?>
<?php if($this->status() == 'invalid') { ?>
$('#<?php echo $this->globalId() ?>').addClass('invalid');
<?php } ?>
<?php
}

} // Class.

} // Namespace.

?>
